====== Les liste de diffusions Mailman3 ======
Mailman3 est une application libre pour gérer des listes de diffusion électroniques, les listes de discussion et les « newsletters ».

Mailman3 est une ré-écriture complète de Mailman 2. Elle est basé sur le language Python et le framework Django.

L'installation et l’administration cette version 3 sont très différentes de la version 1 ou 2, ce qui rend les recherches ardues et conduit bien souvent à d'incommensurables déceptions. D'où la création de cette page.

===== Installation depuis le dépôt Ubuntu =====

Il existe moultes manières d'installer Mailman3 (pip, git, apt, Docker…), selon votre humeur, vos goûts et vos envies.

Reportez-vous à la [[https://docs.mailman3.org/en/latest/|documentation officielle Mailman3]] si nécessaire. (Attention, celle-ci ne couvre pas les paquets Ubuntu/Debian.)

Nous ne verrons ici que celle qui me semble être la plus rapide et la plus confortable, pour Ubuntu : l'utilisation des dépôts via cette merveilleuse commande ''apt-get''. Notez qu'elle devrait fonctionner de la même manière sous Debian.

Cette procédure a été écrite pour Ubuntu 20.04 LTS « Focal Fossa » mais devrait pouvoir être adaptée facilement pour des version ultérieures.

  * Commencez par mettre à jour vos dépôts :

  sudo apt-get update && sudo apt-get -y upgrade

  * Installez mailman3, ainsi que Postorius (interface web) et HyperKitty (outil d'archivage), et ce en une seule et même opération :

  sudo apt-get install mailman3-full

Suivez les instructions lors de l'installation (les options par défaut fonctionnent plutôt pas mal).

  * Configurer postfix en ajoutant les lignes suivantes au fichier ''/etc/postfix/main.cf'' :

  transport_maps = hash:/var/lib/mailman3/data/postfix_lmtp
  local_recipient_maps = hash:/var/lib/mailman3/data/postfix_lmtp
  relay_domains = hash:/var/lib/mailman3/data/postfix_domains

  * Je recommande Nginx plutôt que Apache2 :

  sudo apt-get remove --purge apache2
  sudo apt-get install nginx python3-certbot-nginx 

  * Copiez le modèle de fichier de configuration Nginx fourni par Mailman3 vers le répertoire de Nginx :

  sudo cp /etc/mailman3/nginx.conf /etc/nginx/sites-available/mailman.conf

  * Muni de votre éditeur texte favori, éditez le fichier ''/etc/nginx/sites-available/mailman.conf'' ainsi copié et remplacez le nom de domaine ''mailman.example.com'' par le vôtre :

  server_name mailman.example.com;

  * Activez le fichier de configuration :

  sudo ln -s /etc/nginx/sites-available/mailman.conf /etc/nginx/sites-enabled/mailman.conf

  * Redémarrez Nginx :

  sudo service nginx restart
  
En cas d'erreur, vérifiez que le répertoire défini dans ''/etc/nginx/sites-available/mailman.con'' pour ''access_log'' et ''error_log'' existe bien.

  * Créez le certificat SSL :

  sudo certbot

Suivez les instructions à l'écran.

  * Créez un compte superuser pour Mailman3 :

  sudo django-admin createsuperuser --pythonpath /usr/share/mailman3-web/ --settings settings

Suivez les instructions à l'écran.

  * Muni du compte administrateur précédemment créé, il vous reste à configurer votre système.
    * Avec le navigateur web qui vous plait, rendez-vous sur votre site à l'adresse https://mailman.example.com/.
    * Le première chose à faire est sûrement de renommer le site (Web Host) : https://mailman.example.com/admin/sites/site/1/change/
    * Puis créez un domaine de messagerie : https://mailman.example.com/postorius/domains/new/
    * Enfin, créez votre première liste : https://mailman.example.com/postorius/lists/new/